Dự án Scratch — Lớp 7

Trò chơi bắt rơi vật thể

Hướng dẫn xây dựng game điều khiển giỏ hoặc thuyền bắt vật thể rơi từ trên xuống — tích hợp biến điểm, mạng sống, clone và phát hiện va chạm.

Giới thiệu dự án

Trò chơi bắt rơi vật thể là dự án kinh điển trên Scratch: vật thể (trái cây, bóng, sao…) rơi từ trên sân khấu, người chơi dùng phím mũi tên trái/phải đưa giỏ bắt để hứng. Bắt trúng → cộng điểm; để rơi xuống đáy → mất mạng. Hết mạng → game over.

Logo Scratch
Dự án lớp 7 kết hợp biến, clone, vòng lặp và phát hiện va chạm — nền tảng cho nhiều game arcade
Điều khiển Di chuyển giỏ bắt theo trục ngang bằng phím mũi tên
Vật rơi Sinh vật thể ở vị trí ngẫu nhiên và rơi xuống
Điểm & mạng Biến theo dõi điểm số và số lần bỏ lỡ
Clone Tạo nhiều vật rơi liên tục mà không cần nhiều sprite
💡 Ghi nhớ

Thời gian hoàn thành ước tính: 2–4 giờ. Làm phiên bản cơ bản trước (một loại vật, 3 mạng), rồi mới thêm âm thanh, nhiều costume và tăng độ khó.

Chuẩn bị

Tạo dự án mới, đặt tên ví dụ Bat-roi-vat-the. Bạn cần tối thiểu:

Nhóm khối Biến
Biến điểmmạng tạo trong nhóm Biến — chọn "cho tất cả sprites"

Bước 1: Tạo biến điểm và mạng

Hệ thống điểm
  1. Nhóm BiếnMake a Variable → tên điểm, chọn For all sprites.
  2. Tạo thêm biến mạng, cũng cho tất cả sprites.
  3. Tick hiển thị cả hai trên sân khấu; kéo lên góc trên cho dễ nhìn.
khi nhấn cờ xanh
  đặt [điểm v] thành [0]
  đặt [mạng v] thành [3]

Đặt script reset trên sprite giỏ bắt hoặc sprite vật rơi — miễn chạy một lần khi cờ xanh. Giá trị khởi đầu: 0 điểm, 3 mạng.

Bước 2: Lập trình giỏ bắt

Điều khiển người chơi

Giỏ chỉ di chuyển ngang (trục x), giữ cố định ở cạnh dưới (ví dụ y = -140).

Nhóm khối Sự kiện
Có thể dùng "khi phím được nhấn" hoặc kiểm tra phím trong vòng lặp mãi
khi nhấn cờ xanh
  đi tới x: [0] y: [-140]
  lặp mãi
    nếu <phím [mũi tên phải v] được nhấn?> thì
      thay đổi x thêm [12]
    kết thúc
    nếu <phím [mũi tên trái v] được nhấn?> thì
      thay đổi x thêm [-12]
    kết thúc
  kết thúc

Tăng/giảm số 12 để đổi tốc độ giỏ — số lớn hơn = game khó hơn vì phản xạ phải nhanh hơn.

📌 Tùy chọn

Thêm khối nếu chạm [cạnh v]? sau khi di chuyển để giỏ không ra khỏi màn hình — hoặc giới hạn x trong khoảng -220 đến 220.

Bước 3: Vật thể rơi bằng clone

Sinh vật thể liên tục

Dùng clone để nhiều vật rơi cùng lúc mà chỉ cần một sprite mẫu. Sprite gốc ẩn; chỉ clone hiện và rơi.

Nhóm khối Điều khiển có clone
Khối tạo clone và "khi tôi bắt đầu là bản sao" nằm trong nhóm Điều khiển

Script sprite gốc (sinh clone)

khi nhấn cờ xanh
  ẩn
  lặp mãi
    tạo bản sao của [bản thân v]
    đợi [1] giây
  kết thúc

Giảm thời gian đợi (ví dụ 0,5 giây) để vật rơi dày hơn — game khó hơn.

Bước 4: Hành vi của từng vật rơi

Rơi, bắt, trượt
khi tôi bắt đầu là bản sao
  hiện
  chuyển sang trang phục [trang phục ngẫu nhiên v]
  đi tới x: (số ngẫu nhiên từ (-220) đến (220)) y: [180]
  lặp mãi
    thay đổi y thêm [-5]
    nếu <chạm [Giỏ v]?> thì
      thay đổi [điểm v] thêm [1]
      phát tiếng [pop v]
      xóa bản sao này
    kết thúc
    nếu <(y) < [-170]> thì
      thay đổi [mạng v] thêm [-1]
      phát tiếng [bonk v]
      xóa bản sao này
    kết thúc
  kết thúc
📌 Logic tóm tắt
  • Bắt trúng: chạm giỏ → +1 điểm → xóa clone.
  • Bỏ lỡ: y < -170 (chạm đáy) → -1 mạng → xóa clone.
  • Mỗi clone xử lý độc lập trong vòng lặp mãi riêng của nó.
⚠️ Lưu ý

Đổi Giỏ trong khối chạm đúng tên sprite giỏ bắt của bạn. Nếu dùng tên khác (Thuyền, Xe…), phải chọn lại trong menu thả xuống.

Bước 5: Game Over và chiến thắng

Kết thúc trò chơi

Khi hết mạng

khi nhấn cờ xanh
  lặp mãi
    nếu <(mạng) < [1]> thì
      nói [Game Over!] trong [3] giây
      dừng [tất cả v]
    kết thúc
  kết thúc

Khi đủ điểm thắng (tùy chọn)

nếu <(điểm) > [29]> thì
  nói [Bạn thắng!] trong [3] giây
  dừng [tất cả v]
kết thúc

Đặt script kiểm tra trong vòng lặp mãi trên sprite giỏ hoặc Stage logic — điều kiện thắng (ví dụ 30 điểm) tùy bạn cân bằng độ khó.

💡 Ghi nhớ

Có thể dùng phát thông bái [game over] thay vì kiểm tra biến trực tiếp — nhiều sprite cùng lắng nghe một thông báo để dừng đồng bộ.

Mở rộng dự án

Vật thưởng và vật phạt

Thêm costume vàng hoặc sprite riêng: bắt được +5 điểm; bắt nhầm "bom" → -1 mạng ngay. Dùng nếu trang phục = … hoặc biến loại trên clone.

Tăng độ khó theo điểm

Biến cấp: khi điểm > 10 → giảm đợi giữa các clone xuống 0,7 giây; khi > 20 → tăng tốc rơi (thay đổi y thêm -8 thay vì -5).

Đồng hồ thử thách

Bật hiển thị đồng hồ, đặt về 0 khi cờ xanh. Thắng khi đạt 20 điểm trong 60 giây — kết hợp biến điểm và khối cảm biến thời gian.

📌 Ý tưởng sáng tạo lớp 7
  • Chủ đề bắt táo, bóng rổ, sách rơi trong thư viện.
  • Hiệu ứng particle khi bắt trúng (clone nhỏ bay ra rồi xóa).
  • Bảng xếp hạng local bằng list lưu 5 điểm cao nhất.

Kiểm tra và hoàn thiện

  1. Cờ xanh: điểm = 0, mạng = 3; giỏ ở vị trí xuất phát.
  2. Phím trái/phải di chuyển mượt, không ra khỏi màn.
  3. Vật rơi xuất hiện ngẫu nhiên phía trên và rơi thẳng.
  4. Bắt trúng → điểm tăng, vật biến mất.
  5. Bỏ lỡ → mạng giảm, không bị trừ hai lần cho cùng một vật.
  6. Mạng = 0 → game dừng, thông báo rõ ràng.
  7. Nhờ bạn chơi — độ khó có vừa sức không?
⚠️ Lỗi thường gặp

Quên xóa bản sao sau khi bắt hoặc rơi — clone tích tụ, game lag. Mỗi nhánh kết thúc phải có xóa bản sao này.

💡 Ghi nhớ

Game bắt rơi là dự án lớp 7 hoàn chỉnh: bạn đã ghép input người chơi, physics đơn giản, quản lý trạng thái và vòng đời clone. Đây là bước chuẩn bị tốt cho game phức tạp hơn ở lớp trên.